Computer systems are becoming increasingly sophisticated allowing users to perform a continually increasing variety of computing tasks at faster rates. As a result, complex computations are required to be performed by the computer systems at greater rates.
Parallel processing is a method in which multiple operations or computations are performed in parallel. That is, instead of performing the operations serially, the operations are performed simultaneously. The results of the simultaneous operations can be combined after being individually completed. The net result is that total computations can be performed at greater speeds.
Parallel processing can be particularly useful for applications that receive or generate a large number of inputs or outputs, and provide processing of the inputs and outputs. For example, the reception or generation of images can benefit from parallel processing. Image processing can include operations being performed on many image elements (for example, pixels).
Presently, parallel processing computing systems are typically volatile. That is, generally the parallel processing computing systems fail if power to the computing systems is turned off. In some applications, this reduces the efficiency of the computing system. It can be advantageous to be able to maintain the parallel processing data during a power shut down, so that the processing can be easily restarted.
It is desirable to have a method of parallel processing that is non-volatile. It is desirable that the parallel processing be adaptable for image processing. Additionally, it is desirable that the parallel processing systems be easily integratable.